package com.dragon.pear.modules.trade.web.model.results;

import io.swagger.v3.oas.annotations.media.Schema;

/**
 * @author Chris Chan
 * Create on 2025-09-30 22:06
 * Use for: 商品 请求响应结果
 * Explain:
 * 
 */
@Schema(description = "商品 请求响应结果")
public class TradeGoodsResult {
    @Schema(description = "ID", example = "1")
    private long id;
    @Schema(description = "商品编号", example = "1")
    private long code;
    @Schema(description = "商品标题", example = "字符串")
    private String title;
    @Schema(description = "商品分类ID", example = "1")
    private long cateCode;
    @Schema(description = "交易模式 0 定价 1 竞拍", example = "1")
    private int mode;
    @Schema(description = "价格或者竞拍底价", example = "1")
    private double price;
    @Schema(description = "用户账号", example = "1")
    private long accountCode;
    @Schema(description = "发布日期", example = "1")
    private long time;
    @Schema(description = "商品状态 0 新增 1 发布 2 交易 3 下架", example = "1")
    private int goodsStatus;
    @Schema(description = "数据状态 0 正常 1 删除", example = "1")
    private int status;

    // 无参构造方法
    public TradeGoodsResult() {
    }

    // 全参数构造方法
    public TradeGoodsResult(long id, long code, String title, long cateCode, int mode, double price, long accountCode, long time, int goodsStatus, int status) {
        this.id = id;
        this.code = code;
        this.title = title;
        this.cateCode = cateCode;
        this.mode = mode;
        this.price = price;
        this.accountCode = accountCode;
        this.time = time;
        this.goodsStatus = goodsStatus;
        this.status = status;
    }

    // 全参数create生成器
    public static TradeGoodsResult create(long id, long code, String title, long cateCode, int mode, double price, long accountCode, long time, int goodsStatus, int status) {
        return new TradeGoodsResult(id, code, title, cateCode, mode, price, accountCode, time, goodsStatus, status);
    }

    // 全参数of生成器
    public static TradeGoodsResult of(long id, long code, String title, long cateCode, int mode, double price, long accountCode, long time, int goodsStatus, int status) {
        return new TradeGoodsResult(id, code, title, cateCode, mode, price, accountCode, time, goodsStatus, status);
    }
    // region Getter和Setter方法
    public long getId() {
        return id;
    }

    public TradeGoodsResult setId(long id) {
        this.id = id;
        return this;
    }

    public long getCode() {
        return code;
    }

    public TradeGoodsResult setCode(long code) {
        this.code = code;
        return this;
    }

    public String getTitle() {
        return title;
    }

    public TradeGoodsResult setTitle(String title) {
        this.title = title;
        return this;
    }

    public long getCateCode() {
        return cateCode;
    }

    public TradeGoodsResult setCateCode(long cateCode) {
        this.cateCode = cateCode;
        return this;
    }

    public int getMode() {
        return mode;
    }

    public TradeGoodsResult setMode(int mode) {
        this.mode = mode;
        return this;
    }

    public double getPrice() {
        return price;
    }

    public TradeGoodsResult setPrice(double price) {
        this.price = price;
        return this;
    }

    public long getAccountCode() {
        return accountCode;
    }

    public TradeGoodsResult setAccountCode(long accountCode) {
        this.accountCode = accountCode;
        return this;
    }

    public long getTime() {
        return time;
    }

    public TradeGoodsResult setTime(long time) {
        this.time = time;
        return this;
    }

    public int getGoodsStatus() {
        return goodsStatus;
    }

    public TradeGoodsResult setGoodsStatus(int goodsStatus) {
        this.goodsStatus = goodsStatus;
        return this;
    }

    public int getStatus() {
        return status;
    }

    public TradeGoodsResult setStatus(int status) {
        this.status = status;
        return this;
    }

    // endregion Getter和Setter方法
}
